package medium;

import pojo.TreeNode;

import java.util.Queue;
import java.util.concurrent.ConcurrentLinkedDeque;

/**
 * 1038. 从二叉搜索树到更大和树
 * 中等
 * 相关标签
 * 相关企业
 * 提示
 * 给定一个二叉搜索树 root (BST)，请将它的每个节点的值替换成树中大于或者等于该节点值的所有节点值之和。
 *
 * 提醒一下， 二叉搜索树 满足下列约束条件：
 *
 * 节点的左子树仅包含键 小于 节点键的节点。
 * 节点的右子树仅包含键 大于 节点键的节点。
 * 左右子树也必须是二叉搜索树。
 *
 *
 * 示例 1：
 *
 *
 *
 * 输入：[4,1,6,0,2,5,7,null,null,null,3,null,null,null,8]
 * 输出：[30,36,21,36,35,26,15,null,null,null,33,null,null,null,8]
 */
public class T1038 {
    static int last = 0;
    public T1038(TreeNode root){
        
    }

    public static void reverseLRD(TreeNode root){
        if (root.right !=null){
            reverseLRD(root.right);
        }
        root.val = last+root.val;
        last = root.val;
        if (root.left!=null){
            reverseLRD(root.left);
        }
    }

    public static void main(String[] args) {
        TreeNode root = new TreeNode();
        root.val = 0;
//        root.left = new TreeNode(1);
        root.right = new TreeNode(1);
//        root.left.left = new TreeNode(0);
//        root.left.right = new TreeNode(2);
//        root.right.left = new TreeNode(5);
//        root.right.right = new TreeNode(7);
        reverseLRD(root);
    }


}
